<!-- Documentation produced by the Html generator of Bouml (http://bouml.free.fr) -->
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title>Class HashingExtensible</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>

<body bgcolor="#ffffff">

<div class = "title">Class HashingExtensible</div>
<p></p>

<!-- ============================================================= -->

<a name="refclass136450"></a>
<p>Declaration :</p><ul>
<li>C++ : class HashingExtensible </li></ul><p>Artifact : <a href="index.html#refartifact135810"><b>HashingExtensible</b></a></p>
<div class="sub">
<a name="refrelation135938"></a>
<table><tr><td><div class="element">Relation <b>archivo (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : - archivo : <a href="class135298.html#refclass135298"><b>ArchivoDeBuckets</b></a></li><li>C++ : private: <a href="class135298.html#refclass135298"><b>ArchivoDeBuckets</b></a> * archivo</li></ul><a name="refrelation136066"></a>
<table><tr><td><div class="element">Relation <b>archivoDeControl (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : - archivoDeControl : <a href="class135682.html#refclass135682"><b>ArchivoDeControl</b></a></li><li>C++ : private: <a href="class135682.html#refclass135682"><b>ArchivoDeControl</b></a> * archivoDeControl</li></ul><a name="refattribute137474"></a>
<table><tr><td><div class="element">Attribute <b>tablaDeHash</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : - tablaDeHash : int</li><li>C++ : private: vector&lt;int&gt; tablaDeHash</li></ul><p>Stereotype: vector</p>
<a name="refattribute137602"></a>
<table><tr><td><div class="element">Attribute <b>tablaDeDispersion</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : - tablaDeDispersion : int</li><li>C++ : private: vector&lt;int&gt; tablaDeDispersion</li></ul><p>Stereotype: vector</p>
<a name="refattribute137730"></a>
<table><tr><td><div class="element">Attribute <b>listaDeBucketsLibres</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : - listaDeBucketsLibres : int</li><li>C++ : private: list&lt;int&gt; listaDeBucketsLibres</li></ul><p>Stereotype: list</p>
<a name="refattribute137858"></a>
<table><tr><td><div class="element">Attribute <b>tablaDeTraduccion</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : - tablaDeTraduccion : int</li><li>C++ : private: vector&lt;int&gt; tablaDeTraduccion</li></ul><p>Stereotype: vector</p>
<a name="refrelation136194"></a>
<table><tr><td><div class="element">Relation <b>bucketsEnRedispersion (&lt;unidirectional association&gt;)</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : - bucketsEnRedispersion : <a href="class135426.html#refclass135426"><b>Bucket</b></a></li><li>C++ : private: list&lt;<a href="class135426.html#refclass135426"><b>Bucket</b></a>*&gt; bucketsEnRedispersion</li></ul><p>Stereotype: list</p>
<a name="refattribute137986"></a>
<table><tr><td><div class="element">Attribute <b>redispersando</b></div></td></tr></table>
<p>Declaration :</p><ul><li>Uml : - redispersando : bool</li><li>C++ : private: bool redispersando</li></ul><a name="refoperation150658"></a>
<table><tr><td><div class="element">Operation <b>duplicarBucket</b></div></td></tr></table><p><br />	 *	Duplica el bucket.<br /></p><p>Declaration :</p><ul><li>Uml : - duplicarBucket(inout bucket : <a href="class135426.html#refclass135426"><b>Bucket</b></a>) : <a href="class135426.html#refclass135426"><b>Bucket</b></a></li><li>C++ : private: <a href="class135426.html#refclass135426"><b>Bucket</b></a> * duplicarBucket(<a href="class135426.html#refclass135426"><b>Bucket</b></a> * bucket)</li></ul><a name="refoperation150786"></a>
<table><tr><td><div class="element">Operation <b>imprimirTablaDeDispersion</b></div></td></tr></table><p><br />	 * Se imprime por pantalla la tabla de dispersion.<br /></p><p>Declaration :</p><ul><li>Uml : - imprimirTablaDeDispersion() : void</li><li>C++ : private: void imprimirTablaDeDispersion()</li></ul><a name="refoperation150914"></a>
<table><tr><td><div class="element">Operation <b>imprimirTablaDeHash</b></div></td></tr></table><p><br />	 * Se imprime por pantalla la tabla de hash.<br /></p><p>Declaration :</p><ul><li>Uml : - imprimirTablaDeHash() : void</li><li>C++ : private: void imprimirTablaDeHash()</li></ul><a name="refoperation151042"></a>
<table><tr><td><div class="element">Operation <b>obtenerPosicion</b></div></td></tr></table><p><br />	 * Aplica la función de hash y devuelve la posicion en la tabla de Hash.<br /></p><p>Declaration :</p><ul><li>Uml : - obtenerPosicion(in clave : uint) : uint</li><li>C++ : private: unsigned int obtenerPosicion(unsigned int clave)</li></ul><a name="refoperation151170"></a>
<table><tr><td><div class="element">Operation <b>numeroPosicionesAreemplazar</b></div></td></tr></table><p><br />	 * Devuelve cuantas posiciones de la tabla de hash serán reemplazadas basándose<br />	 * en la dispersión del bloque que se encuentra en &lt;posicion&gt; de la tabla.<br /></p><p>Declaration :</p><ul><li>Uml : - numeroPosicionesAreemplazar(in numeroDeBucket : uint) : uint</li><li>C++ : private: unsigned int numeroPosicionesAreemplazar(unsigned int numeroDeBucket)</li></ul><a name="refoperation151298"></a>
<table><tr><td><div class="element">Operation <b>redispersarBucket</b></div></td></tr></table><p><br />	 * Obtiene uno a uno los elementos del bucket y los vuelve a agregar en el archivo.<br /></p><p>Declaration :</p><ul><li>Uml : - redispersarBucket(inout bucket : <a href="class135426.html#refclass135426"><b>Bucket</b></a>, in numeroDeBucket : int, in posicionEnTablaDeHash : int) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : private: <a href="class135554.html#refclass135554"><b>Resultados</b></a> redispersarBucket(<a href="class135426.html#refclass135426"><b>Bucket</b></a> * bucket, int numeroDeBucket, int posicionEnTablaDeHash)</li></ul><a name="refoperation151426"></a>
<table><tr><td><div class="element">Operation <b>liberarBucket</b></div></td></tr></table><p><br />	 * Evalua si puede liberar el bucket. Si se dan las condiciones, lo libera.<br /></p><p>Declaration :</p><ul><li>Uml : - liberarBucket(in posicionEnTablaDeHash : uint) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : private: <a href="class135554.html#refclass135554"><b>Resultados</b></a> liberarBucket(unsigned int posicionEnTablaDeHash)</li></ul><a name="refoperation151554"></a>
<table><tr><td><div class="element">Operation <b>reducirTablaDeHash</b></div></td></tr></table><p><br />	 * Reduce la tabla de hash si al dividir en dos la tabla, las dos mitades resultan<br />	 * iguales, e informa si se realizó o no la operación.<br /></p><p>Declaration :</p><ul><li>Uml : - reducirTablaDeHash() : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : private: <a href="class135554.html#refclass135554"><b>Resultados</b></a> reducirTablaDeHash()</li></ul><a name="refoperation151682"></a>
<table><tr><td><div class="element">Operation <b>estadoDelBucket</b></div></td></tr></table><p><br />	 * Devuelve BucketDisponible, BucketLibre o BucketNoDisponible.<br /></p><p>Declaration :</p><ul><li>Uml : - estadoDelBucket(in numeroDeBucket : uint) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : private: <a href="class135554.html#refclass135554"><b>Resultados</b></a> estadoDelBucket(unsigned int numeroDeBucket)</li></ul><a name="refoperation151810"></a>
<table><tr><td><div class="element">Operation <b>agregarRegistroInt</b></div></td></tr></table><p><br />	 * Metodo para agregar registro.<br /></p><p>Declaration :</p><ul><li>Uml : - agregarRegistroInt(inout registro : <a href="class135938.html#refclass135938"><b>Registro</b></a>, in clave : int) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : private: <a href="class135554.html#refclass135554"><b>Resultados</b></a> agregarRegistroInt(<a href="class135938.html#refclass135938"><b>Registro</b></a> * registro, int clave)</li></ul><a name="refoperation151938"></a>
<table><tr><td><div class="element">Operation <b>HashingExtensible</b></div></td></tr></table><p><br />	 * Permite operar con un archivo de hashing dinámico, recibiendo los path<br />	 * del archivo donde se almacenarán los datos y uno de control para funcionamiento<br />	 * interno del hashing. Además es necesario pasarle el tamaño del bucket.<br />	 * Si se desea eliminar los archivos, se debe realizar directamente sobre<br />	 * el path de los archivos.<br /></p><p>Declaration :</p><ul><li>Uml : + HashingExtensible(in dimensionDelBucket : int, inout pathArchivoDeDatos : char, inout pathArchivoDeControl : char) : </li><li>C++ : public: HashingExtensible(int dimensionDelBucket, char * pathArchivoDeDatos, char * pathArchivoDeControl)</li></ul><a name="refoperation152066"></a>
<table><tr><td><div class="element">Operation <b>cargarRegistro</b></div></td></tr></table><p><br />	 * Agrega el registro al bucket determinado por la clave que contiene.<br />	 * No realiza verificacion de unicidad de clave.<br />	 * Devuelve operacion OK.<br /></p><p>Declaration :</p><ul><li>Uml : + cargarRegistro(inout registro : <a href="class135938.html#refclass135938"><b>Registro</b></a>) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : public: <a href="class135554.html#refclass135554"><b>Resultados</b></a> cargarRegistro(<a href="class135938.html#refclass135938"><b>Registro</b></a> * registro)</li></ul><a name="refoperation152194"></a>
<table><tr><td><div class="element">Operation <b>agregarRegistro</b></div></td></tr></table><p><br />	 * Agrega el registro al bucket determinado por la clave que contiene.<br />	 * Realiza verificacion de unicidad de clave.<br />	 * Devuelve claveRepetida si existe un registro con esa clave u operacionOK.<br /></p><p>Declaration :</p><ul><li>Uml : + agregarRegistro(inout registro : <a href="class135938.html#refclass135938"><b>Registro</b></a>) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : public: <a href="class135554.html#refclass135554"><b>Resultados</b></a> agregarRegistro(<a href="class135938.html#refclass135938"><b>Registro</b></a> * registro)</li></ul><a name="refoperation152322"></a>
<table><tr><td><div class="element">Operation <b>modificarRegistro</b></div></td></tr></table><p><br />	 * Modifica el registro al bucket determinado por la clave que contiene.<br />	 * Si el registro no se encuentra en el archivo de hashing devuelve el<br />	 * resultado "registroInexistente".<br />	 * Si el registro si se encuentra en el archivo de hashing puede devolver<br />	 * operacionOK u operacionFALLO.<br /></p><p>Declaration :</p><ul><li>Uml : + modificarRegistro(inout registro : <a href="class135938.html#refclass135938"><b>Registro</b></a>) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : public: <a href="class135554.html#refclass135554"><b>Resultados</b></a> modificarRegistro(<a href="class135938.html#refclass135938"><b>Registro</b></a> * registro)</li></ul><a name="refoperation152450"></a>
<table><tr><td><div class="element">Operation <b>eliminarRegistro</b></div></td></tr></table><p><br />	 * Elimina el registro luego de buscarlo por la clave y libera el bucket<br />	 * que lo contiene de ser posible.<br /></p><p>Declaration :</p><ul><li>Uml : + eliminarRegistro(inout registro : <a href="class135938.html#refclass135938"><b>Registro</b></a>) : <a href="class135554.html#refclass135554"><b>Resultados</b></a></li><li>C++ : public: <a href="class135554.html#refclass135554"><b>Resultados</b></a> eliminarRegistro(<a href="class135938.html#refclass135938"><b>Registro</b></a> * registro)</li></ul><a name="refoperation152578"></a>
<table><tr><td><div class="element">Operation <b>obtenerRegistro</b></div></td></tr></table><p><br />	 *	Devuelve el registro a partir del registro introducido.<br />	 *	Registro* es una nueva instancia por lo que debe ser eliminada tras ser<br />	 *	utilizada.<br /></p><p>Declaration :</p><ul><li>Uml : + obtenerRegistro(inout registro : <a href="class135938.html#refclass135938"><b>Registro</b></a>) : <a href="class135938.html#refclass135938"><b>Registro</b></a></li><li>C++ : public: <a href="class135938.html#refclass135938"><b>Registro</b></a> * obtenerRegistro(<a href="class135938.html#refclass135938"><b>Registro</b></a> * registro)</li></ul><a name="refoperation152706"></a>
<table><tr><td><div class="element">Operation <b>mostrarArchivoDeHash</b></div></td></tr></table><p><br />	 * Muestra el contenido del archivo de hashing.<br /></p><p>Declaration :</p><ul><li>Uml : + mostrarArchivoDeHash() : void</li><li>C++ : public: void mostrarArchivoDeHash()</li></ul><a name="refoperation152834"></a>
<table><tr><td><div class="element">Operation <b>~HashingExtensible</b></div></td></tr></table><p><br />	 * Elimina la instancia de memoria.<br /></p><p>Declaration :</p><ul><li>Uml : + ~HashingExtensible() : </li><li>C++ : public: virtual ~HashingExtensible()</li></ul><a name="refrelation145666"></a>
<table><tr><td><div class="element">Relation <b>&lt;directional composition&gt;</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : -  : <a href="class135426.html#refclass135426"><b>Bucket</b></a></li><li>C++ : private: <a href="class135426.html#refclass135426"><b>Bucket</b></a> </li></ul><a name="refrelation145922"></a>
<table><tr><td><div class="element">Relation <b>&lt;directional composition&gt;</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : -  : <a href="class135298.html#refclass135298"><b>ArchivoDeBuckets</b></a></li><li>C++ : private: <a href="class135298.html#refclass135298"><b>ArchivoDeBuckets</b></a> </li></ul><a name="refrelation146050"></a>
<table><tr><td><div class="element">Relation <b>&lt;directional composition&gt;</b></div></td></tr></table><p>Declaration :</p><ul><li>Uml : -  : <a href="class135682.html#refclass135682"><b>ArchivoDeControl</b></a></li><li>C++ : private: <a href="class135682.html#refclass135682"><b>ArchivoDeControl</b></a> </li></ul></div>
<p>All public operations : <a href="class136450.html#refoperation152194"><b>agregarRegistro</b></a> , <a href="class136450.html#refoperation152066"><b>cargarRegistro</b></a> , <a href="class136450.html#refoperation152450"><b>eliminarRegistro</b></a> , <a href="class136450.html#refoperation152322"><b>modificarRegistro</b></a> , <a href="class136450.html#refoperation152706"><b>mostrarArchivoDeHash</b></a> , <a href="class136450.html#refoperation152578"><b>obtenerRegistro</b></a> </p>
</body>
</html>
